/*
 * Copyright (c) 2018-2999 九五云信息科技有限公司 All rights reserved.
 *
 * https://www.gz-yami.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.bean.app.dto;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yami.shop.bean.model.Product;
import com.yami.shop.bean.param.LiveRoomParam;
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class ProductDto {
    /**
     * 店铺ID
     */
    @ApiModelProperty(value = "店铺ID", required = true)
    private Long shopId;

    /**
     * 商品ID
     */
    @ApiModelProperty(value = "商品ID", required = true)
    private Long prodId;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    private String prodName;

    /**
     * 商品价格
     */
    @ApiModelProperty(value = "商品价格", required = true)
    private Double price;

    /**
     * 商品详情
     */
    @ApiModelProperty(value = "详细描述")
    private String content;

    /**
     * 商品原价
     */
    @ApiModelProperty(value = "商品原价", required = true)
    private Double oriPrice;

    /**
     * 库存量
     */
    @ApiModelProperty(value = "库存量", required = true)
    private Integer totalStocks;

    /**
     * 销量
     */
    @ApiModelProperty(value = "销量", required = true)
    private Integer soldNum;

    /**
     * 简要描述,卖点等
     */
    @ApiModelProperty(value = "简要描述,卖点等", required = true)
    private String brief;

    /**
     * 状态
     */
    @ApiModelProperty(value = "0:下架、1:上架", required = true)
    private Integer status;

    /**
     * 商品视频
     */
    @JsonSerialize(using = ImgJsonSerializer.class)
    @ApiModelProperty(value = "商品视频")
    private String video;

    /**
     * 商品主图
     */
    @JsonSerialize(using = ImgJsonSerializer.class)
    @ApiModelProperty(value = "商品主图", required = true)
    private String pic;

    @JsonSerialize(using = ImgJsonSerializer.class)
    @ApiModelProperty(value = "商品图片列表，以逗号分割", required = true)
    private String imgs;

    @ApiModelProperty(value = "预售状态 1：开启 0：未开启")
    private Integer preSellStatus;

    @ApiModelProperty(value = "预售发货时间")
    private Date preSellTime;
    /**
     * 商品分类
     */
    @ApiModelProperty(value = "商品分类id", required = true)
    private Long categoryId;

    @ApiModelProperty(value = "sku列表")
    private List<SkuDto> skuList;

    @ApiModelProperty(value = "商品类型(0普通商品 1拼团 2秒杀 3积分)")
    private Integer prodType;

    /**
     * 商品积分价格
     */
    @ApiModelProperty(value = "商品积分价格")
    private Long scorePrice;

    /**
     * 活动id(对应prod_type)
     */
    @ApiModelProperty(value = "活动id(prodType)")
    private Long activityId;


    /**
     * 活动参考价
     */
    @ApiModelProperty(value = "活动参考价", required = true)
    private Double activityPrice;

    /**
     * 同城配送起送费
     */
    @ApiModelProperty(value = "同城配送起送费", required = true)
    private Double startDeliveryFee;

    @ApiModelProperty(value = "配送方式", required = true)
    private Product.DeliveryModeVO deliveryModeVO;

    /**
     * 商品直播间列表
     */
    @ApiModelProperty(value = "商品直播间列表", required = true)
    private List<LiveRoomParam> liveRoomParams;

}
